$(function() {
    // 1.全选全不选功能模块
    // 就是将全选按钮（checkall）赋值给三个小按钮（j-checkbox）就可以了
    $(".checkall").change(function() {
        $(".j-checkbox, .checkall").prop("checked", $(this).prop("checked"));
        // $(this).prop("checked") 表示全选按钮checkall的checked属性状态，勾选了就是true，没勾选就是false
        if ($(this).prop("checked")) {
            //让所有的商品添加check-cart-item 类名
            $(".cart-item").addClass("check-cart-item");
        } else {
            $(".cart-item").removeClass("check-cart-item");
        }

    });

    // 2.如果小复选框选中的个数等于3个 就应该将全选按钮选中
    $(".j-checkbox").change(function() {
        // if (被选中框的个数 === 3) {
        //     则选中全选按钮
        // } else {
        //     不选中全选按钮
        // } 
        // 使用：checked来看选中了几个小复选框
        if ($(".j-checkbox:checked").length === $(".j-checkbox").length)
        // $(".j-checkbox:checked").length 表示j-checkbox被选中的个数
        //$(".j-checkbox").length 表示checkbox的所有个数
        {
            $(".checkall").prop("checked", true);
        } else {
            $(".checkall").prop("checked", false);
        }

        if ($(this).prop("checked")) {
            //让当前商品添加check-cart-item 类名
            $(this).parents(".cart-item").addClass("check-cart-item");
        } else {
            $(this).parents(".cart-item").removeClass("check-cart-item");
        }
    });

    // 3.增减商品数量模块， 首先先声明一个变量，当我们点击+号时，就让这个值++，然后再赋值给文本框
    $(".increment").click(function() { //增加商品数量
        //得到当前商品兄弟文本框的值
        var n = $(this).siblings(".itxt").val();
        // console.log(n);
        n++;
        $(this).siblings(".itxt").val(n);

        //3.计算小计模块, 根据文本框的值 * 当前文本框的值 即为小计的价格
        // p为当前商品的价格
        // parents()返回指定的祖先元素
        // toFixed(2) 保留两位小数
        var p = $(this).parents(".p-num").siblings(".p-price").html();
        // console.log(p); 输出的为￥12.60
        // 用substr()截取字符￥
        p = p.substr(1);
        // console.log(p); 输出为12.60
        $(this).parents(".p-num").siblings(".p-sum").html("￥" + (p * n).toFixed(2));
        getSum();
    })

    $(".decrement").click(function() { //减少商品数量
        //得到当前商品兄弟文本框的值
        var n = $(this).siblings(".itxt").val();
        // console.log(n);
        if (n == 1) {
            return false
        }
        n--;
        $(this).siblings(".itxt").val(n);

        //3.计算小计模块, 根据文本框的值 * 当前文本框的值 即为小计的价格
        // p为当前商品的价格
        var p = $(this).parents(".p-num").siblings(".p-price").html();
        // console.log(p); 输出的为￥12.60
        // 用substr()截取字符￥
        p = p.substr(1);
        // console.log(p); 输出为12.60
        $(this).parents(".p-num").siblings(".p-sum").html("￥" + (p * n).toFixed(2));
        getSum();
    })

    // 4.用户修改文本框的值，计算小计的价格
    $(".itxt").change(function() {
        // 先得到文本框里的值
        var n = $(this).val();
        //当前商品单价
        var p = $(this).parents(".p-num").siblings(".p-price").html();
        p = p.substr(1);
        $(this).parents(".p-num").siblings(".p-sum").html("￥" + (p * n).toFixed(2));
        getSum();
    })

    // 5.计算总计和总额模块
    getSum();

    function getSum() {
        var count = 0; //计算总件数
        var money = 0; //计算总价钱
        $(".itxt").each(function(i, ele) {
            count += parseInt($(ele).val());
        });
        $(".amount-sum em").text(count);

        $(".p-sum").each(function(i, ele) {
            money += parseFloat($(ele).text().substr(1));
        });
        $(".price-sum em").text("￥" + money.toFixed(2));
    }

    // 6. 删除商品模块
    // (1).商品后面的删除按钮
    $(".p-action a").click(function() {
        //删除的是当前的商品
        $(this).parents(".cart-item").remove();
        getSum();
    });
    // (2).删除选中的商品
    $(".remove-batch").click(function() {
        // 删除的是小的复选框选中的商品
        $(".j-checkbox:checked").parents(".cart-item").remove();
        getSum();
    });
    // (3). 清空购物车 删除全部的商品
    $(".clear-all").click(function() {
        $(".cart-item").remove();
        getSum();
    })


})